#ifndef LSBSTEG_H
#define LSBSTEG_H


#include <Qimage>
class LSBSteg
{
public:
    LSBSteg();
    //lsb相关
    //隐藏信息
    QImage     lsbImbedded(QByteArray& msg);
    //提取信息
    QByteArray lsbRetrieval(){return lsbRetrieval(m_carrierIamge.bits(),m_carrierIamge.sizeInBytes());}
    //隐藏信息
    static bool   lsbImbedded(QImage &image,const QByteArray& msg);
    //隐藏信息
    static bool   lsbImbedded(uchar *image, int len, const QByteArray& msg);
    //隐藏信息
    static bool   lsbImbedded(QImage &image, uchar *msg, int len);
    //隐藏信息
    static QImage lsbImbedded(QImage &&image,const QByteArray& msg);
    //隐藏信息
    static QImage lsbImbedded(QImage &&image, uchar *msg, int len);
    //提取信息
    static QByteArray lsbRetrieval(const QImage& msg){return lsbRetrieval(msg.bits(),msg.sizeInBytes());};
    //提取信息
    static QByteArray lsbRetrieval(QImage&& msg){return lsbRetrieval(msg.bits(),msg.sizeInBytes());}
    //提取信息
    static QByteArray lsbRetrieval(const uchar *msg, int len_msg);
private:
    QImage m_carrierIamge;
};

#endif // LSBSTEG_H
